home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / apps / math / ols.zoo / matalloc.inc < prev    next >
Text File  |  1993-04-15  |  783b  |  30 lines

  1.  
  2. /* No declaration; matalloc.c must declare the routines */
  3. {
  4.     MATTYPE *block;
  5.     MATTYPE **m;
  6.     int size, i, rowsize, numrows;
  7.  
  8.     rowsize = ch - cl + 1;    /* #locations consumed by 1 row */
  9.     numrows = rh -rl + 1;
  10.     size = numrows*rowsize;
  11.     block = (MATTYPE *) malloc((unsigned) sizeof(MATTYPE )*size);
  12.     if (block == NULL) 
  13.         FatalError("malloc failure in matrix allocation\n");
  14.     /* so we have the matrix. */
  15.  
  16.     /* Now for the row pointers */
  17.     m = (MATTYPE **) malloc((unsigned) sizeof(MATTYPE *)*numrows);
  18.     if (m == NULL) FatalError("malloc failure in matrix allocation\n");
  19.     m -= rl;    /* fixup m pointer so m[rl] == old m[0] */
  20.  
  21.     /* Finally, setup pointers to rows */
  22.     block -= cl;
  23.     for (i=rl; i<=rh; i++) {
  24.         m[i] = block;
  25.         block += rowsize;
  26.     }
  27.     return m;
  28. }
  29.  
  30.